树莓派(三):Bootloader,Linux内核配置编译,Linux文件系统 您所在的位置:网站首页 树莓派 启动顺序 树莓派(三):Bootloader,Linux内核配置编译,Linux文件系统

树莓派(三):Bootloader,Linux内核配置编译,Linux文件系统

2023-06-15 16:12| 来源: 网络整理| 查看: 265

嵌入式系统启动过程

        电源----BootLoader----Linux内核----文件系统----应用程

 BootLoader

        引导操作系统启动,启动大多分为两个阶段:

        一阶段主要依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。

        硬件初始化(屏蔽所有的中断、关闭处理器内部指令/数据Cache等)。         固态存储媒质中,复制Bootloader二阶段代码到RAM。         预备RAM空间。         设置堆栈。 

        二阶段C语言完成,实现复杂的功能,程序有更好的可读性和可移植性。

        初始化硬件。         检测系统内存映射。         内核映像和根文件系统映像从Flash读到RAM。         为内核设置启动参数。         调用内核。

        为什么要关闭Cache?

        使用Cache以及buffer提高系统性能,由于Cache的使用改变访问主存的数量、类型和时间,Bootloader通常是不需要的跳转到第二阶段的C程序入口点

Linux源码目录    

        arch:硬件体系结构相关的代码。包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。           block:部分块设备驱动程序。           crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。           Documentation:关于内核各部分的通用解释和注释。           drivers:设备驱动程序,每个不同的驱动占用一个子目录。           fs:各种支持的文件系统,如ext、fat、ntfs等。           include:头文件。系统相关的头文件被放置在linux子目录下。           init:内核初始化代码(注意不是系统引导代码)。           ipc:进程间通信的代码。           kernel:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。           lib:库文件代码。           mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。           net:网络相关代码,实现了各种常见的网络协议。           scripts:用于配置内核文件的脚本文件。           security:主要是一个SELinux的模块。           sound:常用音频设备的驱动程序等。           usr:实现了一个cpio(文件备份程序及文件格式)。

树莓派Linux源码配置(ubuntu18.04)

        内核配置方式:copy已发布的config,依据已发布的config配置(make menuconfig)

        驱动加载的两种方式:编译进内核(zImage内),生成moudle启动后加载(insmod)

        

解压源码包 unzip linux-rpi-4.14.y.zip 内核配置 cd linux-rpi-4.14.y ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig ARCH:指定架构 CROSS_COMPILE:指定编译工具(提前做好环境变量) KERNEL:内核版本 make:配置命令 后缀为内核文件

树莓派Linux内核编译(ubuntu18.04)

搭建编译环境 sudo apt-get install -y bc l libncurses5-dev libncursesw5-dev zlib1g:i386 libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 编译 cd /root/linux-rpi-4.14.y ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs j4: 指定编译资源 zImage:生成内核镜像(arch/arm/boot/) modules:生成驱动模块 dtbs:生成配置文件 生成vmlinux 打包镜像 cd /root/linux-rpi-4.14.y ./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img 挂载树莓派SD卡 cd /root mkdir fat ext4 mount /dev/sdb1 fat mount /dev/sdb2 ext4 fat分区是boot相关,kernel_img ext4分区是系统的根目录分区 安装modules, 设备驱动文件(hdmi,usb ,wifi,io...) /root/linux-rpi-4.14.y ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/root/ext4 modules_install 备份 备份树莓派原有镜像(fat) cd /root/fat/ cp kernel7.img kernel7_old.img 拷贝新的镜像为树莓派镜像(fat) cp /root/linux-rpi-4.14.y/kernel_new.img /root/fat/kernel7.img 拷贝配置文件 cp /root/linux-rpi-4.14.y/arch/arm/boot/dts/.*dtb* /root/fat/ cp /root/linux-rpi-4.14.y/arch/arm/boot/dts/overlays/.*dtb* /root/fat/ cp /root/linux-rpi-4.14.y/arch/arm/boot/dts/overlays/README /root/fat/

取消挂载,重启树莓派查看内核

 linux文件系统

    文件系统         文件系统是操作系统用于明确存储设备组织文件的方法。即文件管理系统,简称文件系统。   

    文件系统分类         FAT VFAT NTFS EXT1/2/3/4 HFS等(df -T)                 vfat:boot(bootloader, kernel)         ext4:根目录         tmpfs:内存文件系统

    文件目录结构                /bin:二进制文件目录,含系统启动和运行的命令。

        /boot:启动Linux系统所需的文件,如内核文件和启动加载程序。

        /dev:设备文件目录,含与硬件设备相关的文件。

        /etc:配置文件目录,含系统的各种配置文件。

        /home:用户主目录。

        /lib:系统库文件目录,含运行基本命令和程序所需的库文件。

        /media:可移动媒体设备挂载目录,包括U盘、光盘等。

        /mnt:挂载目录,用于临时挂载其他文件系统。

        /opt:可选应用程序目录,含第三方应用程序。

        /proc:虚拟文件系统目录,当前运行的系统进程信息和内核状态信息。

        /root:超级用户的主目录。

        /run:系统运行时的临时文件目录。

        /sbin:系统管理员命令目录,含系统管理命令。

        /srv:服务数据目录,含与特定服务相关的数据文件。

        /sys:虚拟文件系统目录,含系统硬件设备相关的信息。

        /tmp:临时文件目录,用于存放一些临时文件。

        /usr:用户程序和数据目录,含系统安装的应用程序和用户数据文件。

        /var:可变数据目录,含系统运行过程中的可变数据,如日志文件和缓存文件等。

    分区          嵌入式系统分为4个区:                 bootloader:启动代码                 para:启动代码向内核传递参数的位置                 kernel:内核分区                 根分区等

    虚拟文件系统         vfs是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口。不管文件类型,不管文件是磁盘还是设备,都只用open, read,write统一操作。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有